package skladowisko.generator;

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author kedziers
 */
public class ModelGeneracji {

    private List<Double> zapelnienia = new ArrayList<Double>();
    private List<SkladowiskoMetaData> skladowiska = new ArrayList<SkladowiskoMetaData>();
    private List<StrategiaRozmieszczania> strategie = new ArrayList<StrategiaRozmieszczania>();
    private List<String> porty = new ArrayList<String>();

   
    public ModelGeneracji(boolean defaultValues)
    {
        if(defaultValues)
        {
            initZapelnienia();            
            initStrategie();
            initPorty();
        }
        initSkladowiska();
    }

    private void initZapelnienia()
    {
        getZapelnienia().add(0.1);
        getZapelnienia().add(0.3);
        getZapelnienia().add(0.4);
        getZapelnienia().add(0.5);
        getZapelnienia().add(0.7);
        getZapelnienia().add(0.9);
    }

    private void initSkladowiska()
    {
        getSkladowiska().add(new SkladowiskoMetaData("S1"));
        getSkladowiska().add(new SkladowiskoMetaData("S2"));
        getSkladowiska().add(new SkladowiskoMetaData("S3"));
        getSkladowiska().add(new SkladowiskoMetaData("S4"));
        getSkladowiska().add(new SkladowiskoMetaData("S5"));
        getSkladowiska().add(new SkladowiskoMetaData("S6"));
    }

    private void initStrategie()
    {
        //strategie.add(StrategiaRozmieszczania.wszystko_razem);
        //strategie.add(StrategiaRozmieszczania.najnizsza_warstwa);
        //strategie.add(StrategiaRozmieszczania.rowno_plasko);
        //strategie.add(StrategiaRozmieszczania.rowno_wysoko);
        //strategie.add(StrategiaRozmieszczania.wspolny_wyjazd_razem);
        strategie.add(StrategiaRozmieszczania.losowo);
    }

    /**
     * @return the zapelnienia
     */
    public List<Double> getZapelnienia() {
        return zapelnienia;
    }

    /**
     * @param zapelnienia the zapelnienia to set
     */
    public void setZapelnienia(List<Double> zapelnienia) {
        this.zapelnienia = zapelnienia;
    }

    /**
     * @return the skladowiska
     */
    public List<SkladowiskoMetaData> getSkladowiska() {
        return skladowiska;
    }

    /**
     * @param skladowiska the skladowiska to set
     */
    public void setSkladowiska(List<SkladowiskoMetaData> skladowiska) {
        this.skladowiska = skladowiska;
    }

    public List<StrategiaRozmieszczania> getStrategie() {
        return this.strategie;
    }

    //**************************************************************************

    public void addZapelnienie(double zapelnienie)
    {
         getZapelnienia().add(zapelnienie);
    }

    public void addStrategia(StrategiaRozmieszczania strategia)
    {
          strategie.add(strategia);
    }

    public void addSkladowisko(SkladowiskoMetaData skladowisko)
    {
        skladowiska.add(skladowisko);
    }

    public void addPort(String port)
    {
        getPorty().add(port);
    }

    private void initPorty()
    {
        getPorty().add("Hamburg");
        getPorty().add("Szczecin");
        getPorty().add("Gdynia");
        getPorty().add("Katowice");
        getPorty().add("Drezdno");
    }

    /**
     * @return the porty
     */
    public List<String> getPorty()
    {
        return porty;
    }

    //**************************************************************************
}
